Algoritmos e Técnicas de Programação

Aula 03
Prof. Dr. Raulcézar Alves
raulcezar@gmail.com

Tipos de dados em C/C++

    Mais comuns
  • int: para números inteiros
  • float: para números reais
  • char: para um caracter de texto

Tipos de dados em C/C++

    Não existem
  • boolean (Verdadeiro/False): é utilizado int, sendo 0 para falso e 1 (ou qualquer outro número diferente de 0) para verdadeiro
  • cadeia/sequência de caracteres: de forma nativa, não existe tipo STRING, é utilizado um vetor de caracters para guardar palavras com tamanho maior que 1.

Tipos de dados em C/C++

    Exemplos
  • float X;
  • char SEXO;
  • char NOME[40];

Tipos de dados em C/C++

TipoMemória (bytes)Intervalo (CPU 32Bits)Formato
short int2-32.768 a 32.767%hd
unsigned short int20 a 65.535%hu
unsigned int40 a 4.294.967.295%u
int4-2.147.483.648 a 2.147.483.647%d
long int4-2.147.483.648 a 2.147.483.647%ld
unsigned long int40 a 4.294.967.295%lu
long long int8 -(2^63) a (2^63)-1%lld
unsigned long long int80 a 18.446.744.073.709.551.615%llu
signed char1-128 a 127%c
unsigned char10 a 255%c
float4%f
double8%lf
long double12%Lf

Tipos de dados em C/C++

    Exceder tamanho:
  • valor é circular
  • quando uma variável recebe um valor maior que a capacidade do tamanho de seu tipo, ele estoura e se começa a contar do restante

Tipos de dados em C/C++

Exercício

    Quanto valem no exemplo anterior?
  • X:
  • Y:
  • Z:
  • W:

Exercício

Execute o código abaixo e veja o resultado do exemplo
						
#include<stdio.h>
int main()
{
    short int X = 32767;
    short int Y = X + 1;
    short int Z = Y + 32768;
    int W = X + 1;
    printf("%hd %hd %hd %d ",X,Y,Z,W);
}
						
					

Comando de atribuição em C/C++

    utilizado para atribuir valor ou operação para uma variável, por meio do símbolo =, como:
  • X = 4;
  • SEXO = 'F';
  • Y = X + 2.5;

Comando de atribuição em C/C++

  • um caracter é representado entre apóstofros ('), como:
  • SEXO = 'F';
  • Já cadeias de caractares ficam entre aspas ("). Para armazenar uma cadeia de caracteres em uma variável utiliza-se o comando strcpy(variável,"valor"), ao invés da atribuição com =, e deve-se incluir a biblioteca string.h.
  • strcpy(NOME,"Joao");
  • todas as linhas de comando em C devem ser finalizadas com ;

Comando de atribuição em C/C++

Exemplos errado e correto:
						
char linguagem[20];
linguagem = "linguagem C"; /* ilegal em C */
strcpy( linguagem, "linguagem C"); /* legal */
						
					

Exercício

    Faça um programa que:
  • possua uma variável inicializada com seu nome completo, atribuindo o valor com strcpy
  • imprima seu conteúdo com printf("%s", ...)

Exercício

    Faça um programa que:
  • possua uma variável inicializada com seu nome completo, atribuindo o valor com strcpy
  • imprima seu conteúdo com printf("%s", ...)
						
#include<stdio.h>
int main()
{
    char nome[50];
    strcpy(nome, "Raulcezar Alves");
    printf("%s",nome);
}
						
					

Comandos de Entrada em C/C++

    são utilizados para receber dados digitados pelo usuário e salvar em variáveis
  • cin: cin >> X (armazena os caracteres em X até encotrar um espaço em branco)
  • gets: gets(X) (armazena todos os caracteres digitados em X)
  • scanf: scanf(%FORMATO,&X) (armazena todos os caracteres digitados em X, dado o formato como visto na tabela de tipos)


Utilizaremos preferencialmente scanf

Comandos de Saída em C/C++

    são utilizados para mostras dados na tela
  • cout: cout << X
  • printf: printf("%FORMATO",X)


Utilizaremos preferencialmente printf

Exercício

    Digite o número float 123.45 e o armazene em uma variável. Depois, o imprima das seguintes formas:
  • mostrando apenas a parte inteira com 3 casas
  • mostrando a parte inteira com 3 casas e mais 2 decimais

Exercício

    Digite o número float 123.45 e o armazene em uma variável. Depois, o imprima das seguintes formas:
  • mostrando apenas a parte inteira com 3 casas
  • mostrando a parte inteira com 3 casas e mais 2 decimais
						
#include<stdio.h>
int main()
{
    float x;
    printf("Digite um numero \n");
    scanf("%f",&x);
    printf("parte inteira %3.0f \n",x);
    printf("parte inteira e decimais %3.2f \n",x);
    return 0;
}
						
					

Comentários em C/C++

    documentar código, ignorado pelo compilador
  • // comentário de uma linha
  • /* ... */ comentário em bloco para múltiplas linhas
						
#include<stdio.h>
int main()
{
    int x,y,z;
    //atribuir valores
    x=2;
    y=3;
    /*
      abaixo x e y sao somados
      o resultado eh armazenado em z
    */
    z=x+y;
    return 0;
}
						
					

Operadores e Funções em C/C++

Operadoers Básicos:
OperadorExemploComentário
=x=yatribuição
+x+ysoma de x e y
-x-ysubtração de y em x
*x*ymultiplicação de x por y
/x/ydivisão de x por y
%x%yresto da divisão de x por y

Exercício

Mostre o resto da divisão de 10 por 4.

Exercício

Mostre o resto da divisão de 10 por 4.
						
#include<stdio.h>
int main()
{
    int x;
    x = 10%4;
    printf("%d",x);
    return 0;
}
						
					

Operadores e Funções em C/C++

Operadoers Matemáticos de atribuição, fazem operações e já armazenam o resultado:
OperadorExemploComentário
+=x+=yequivale a x=x+y
-=x-=yequivale a x=x-y
*=x*=yequivale a x=x*y
/=x/=yequivale a x=x/y
%=x%=yequivale a x=x%y
++x++equivale a x=x+1 (incremento)
--x--equivale a x=x-1(decremeto)

Exercício

Inicialize x com valor 10 e imprima seu conteúdo. Depois incremente x e mostre novamente.

Exercício

Inicialize x com valor 10 e imprima seu conteúdo. Depois incremente x e mostre novamente.
													
#include<stdio.h>
int main()
{
    int x=10;
    printf("%d \n",x);
    x++;
    printf("%d \n",x);
    return 0;
}
						
					

Operadores e Funções em C/C++

Operadoers Lógicos, utilizados em estruturas condicionais (próximas aulas). Retorna 1 se verdadeiro e 0 se falso:
OperadorExemploComentário
==x==yx igual a y
!=x!=yx diferente de y
<=x<=yx menor ou igual a y
>=x>=yx maior ou igual a y
<x<yx menor que y
>x>yx maior que y

Exercício

Inicialize x com valor 10 e y com valor 9. Teste as operações x>y, x<y, x==y e x!=y, imprimindo os resultados.

Exercício

Inicialize x com valor 10 e y com valor 9. Teste as operações x>y, x<y, x==y e x!=y, imprimindo os resultados.
													
#include<stdio.h>
int main()
{
    int x,y,resultado;
    x=10;
    y=9;
    resultado = x>y;
    printf("%d \n",resultado);
    resultado = x<y;
    printf("%d \n",resultado);
    resultado = x==y;
    printf("%d \n",resultado);
    resultado = x!=y;
    printf("%d \n",resultado);
    return 0;
}